package com.juc.learn.sync;

/**
 * ClassName:ShareNumber
 * Package:com.juc.learn.sync
 * Description:共享变量
 *
 * @Author:@郭先森
 * @Create:2025/7/26 - 16:25
 * @Version:v1.0
 */
public class ShareNumber {

    private int number=0;
    //加
    public synchronized void add() throws InterruptedException {
//        if(number!=0){
//            this.wait();
//        }
//        System.out.println("执行了add方法，number的当前的值为: "+number++);
//        notifyAll();

        //虚假唤醒解决
        while(number!=0){
            this.wait();
        }
        System.out.println("执行了add方法，number的当前的值为: "+number++);
        notifyAll();
    }

    //减
    public synchronized void sub() throws InterruptedException {
//        if(number!=1){
//            this.wait();
//        }
//        System.out.println("执行了sub方法，number的当前的值为: "+number--);
//        notifyAll();
        //虚假唤醒解决
        while(number!=1){
            this.wait();
        }
        System.out.println("执行了sub方法，number的当前的值为: "+number--);
        notifyAll();
    }
}
